The GPS m-code signal is a symmetric multimodal signal having a plurality of modes or peaks in a multimodal autocorrelation function of the m-code signal. The steep gradients of the m-code autocorrelation function about the peaks allow for precise code phase tracking with conventional square law code tracking loops and other code tracking schemes. The m-code autocorrelation function has seven modes, all indistinguishable with respect to conventional early, prompt, and late correlator tap arrangements. A problem with tracking of the m-code multimodal autocorrelation function is that code phase error estimates can be ambiguous at to which one of the peaks is being tracked.
A weak-lock GPS signal tracking system uses a GPS signal-tracking filter. The GPS signal-tracking filter is an extended Kalman filter with high data rate of 1000 Hz, measurements that include early, prompt, and late inphase and quadrature correlations. States of the GPS signal-tracking filter include a carrier replica phase error, a carrier replica Doppler error, and a code replica phase error. In the weak-lock configuration, the states of the GPS signal-tracking filter, which are directly related to code replica, carrier replica phase, and Doppler errors are applied to both replicas at a very low rate of 1.0 Hz as a correction. The steep gradients of the m-code autocorrelation function allow precise estimates of the code replica phase error but only with respect to a neighboring m-code autocorrelation peak. Tracking of a modal peak to achieve precise m-code replica phase error estimation introduces ambiguity with respect to which one of the autocorrelation peaks is currently being tracked.
An m-code envelope processor has a unimodal autocorrelation function with a single mode coincident with a center peak of the m-code autocorrelation function. An m-code envelope has only one correlation peak so tracking the m-code signal about the center peak is unambiguous. However, an m-code envelope does a low-grade gradient as compared to the steep gradient of the m-code autocorrelation function so tracking the m-code signal using only an m-code envelope is not precise, in a local sense, as with conventional early, prompt, and late m-code correlation taps.
M-code envelope processors fall into two classes. One class of m-code processor uses an m-code envelope signal tracking system to form an envelope using the m-code signal. An m-code processor can use conventional or specially configured harmonic m-code correlation taps. The m-code envelope processor with harmonic m-code correlators forms a smooth, monotonic, low-grade gradient envelope but the harmonic m-code correlators are not a conventional design adding complexity and cost to the m-code signal tracking system.
The second class of m-code processor is a coherent code envelope processor. The coherent code envelope processor uses a coherently tracked unimodal code, such as the c/a-code or p(y)-code, modulated on the same carrier. Coherently tracked means replicas for all codes, the m-code and other unimodal codes, are assigned such that the replica phase errors are the same. An ultra tightly coupled GPS tracking system provides coherent code tracking because replicas for all codes are computed using only a reference navigation solution and satellite ephemeredes. Coherently tracked codes do not have the steep gradient of the m-code autocorrelation function so tracking, in the local sense, is not as precise as with conventional early, prompt, and late m-code correlation taps. The m-code tracking processors suffer from either accurate but ambiguous tracking, or, unambiguous but inaccurate tracking. These and other problems are solved or reduced using the present invention.